package cn.cailin.day07.demo08WriterTry;

import java.io.FileWriter;
import java.io.IOException;

/*
    在jdk1.7之前使用try catch finally 处理流中的异常
    格式:
        try{
            可能会产生异常的代码
        }catch(异常类的变量 变量名){
            异常的处理逻辑
        }finally{
            一定会指定的代码
            释放资源
        }
 */
public class Demo01TryCatch {
    public static void main(String[] args) {
        //提高变量fw的作用域，让finally可以使用
        //变量在定义的时候，可以没有值，但是使用的时候必须有值
        //fw=new FileWriter("D:\IDEA\day05-code\src\cn\cailin\day07\g.txt");执行失败，fw就没有值。fw.close就会报错

        FileWriter fw=null;
        try {
             fw = new FileWriter("D:\\IDEA\\day05-code\\src\\cn\\cailin\\day07\\g.txt",true);
            for (int i = 0; i < 10; i++) {
                fw.write("HelloWorld"+i+"\r\n");//换行
            }

        } catch (IOException e) {
            //异常的处理逻辑
            System.out.println(e);//(系统找不到指定的路径。)
        }finally {
            //一定要指定的代码
            //创建对象失败了，fw默认值就是null，null是不能调用方法的，抛出NullPointException，需要增加一个判断，不是null在把资源释放
            if (fw!=null){
                try {
                    //fw.close方法声明抛出了IOException异常对象，所以我们就得处理这个异常对象
                    fw.close();
                } catch (IOException e) {
                    e.printStackTrace();
                    }
            }

        }

    }
}
